package com.wtwd.wtwddevice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wtwd.wtwddevice.model.entity.DeviceWPhone;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author mjy
 * @since 2024-06-12
 */
public interface IDeviceWPhoneService extends IService<DeviceWPhone> {

    /**
     * 同步设备闹钟
     * 如果设备闹钟不集合为空则将该设备所有数据标记为待删除状态，等待回复物理删除
     *
     * @param deviceId
     * @param number
     * @param deviceWPhones
     * @return
     */
    boolean synchronization(Long deviceId, String number, List<DeviceWPhone> deviceWPhones);

    /**
     * 将该设备的所有闹钟标记为删除
     *
     * @param deviceId
     * @return
     */
    boolean tagDeletion(Long deviceId, String number);

    /**
     * 根据设备id 物理删除所有带 删除标记的闹钟
     *
     * @param deviceId
     * @return
     */
    boolean deleteByDeviceId(Long deviceId);

    /**
     * 查询该条命令是否有标记删除的数据
     *
     * @param deviceId
     * @param number
     * @return
     */
    boolean isTagDeletion(Long deviceId, String number);

    /**
     * 根据设备id 序列号更新指令状态
     *
     * @param deviceId
     * @param number
     * @param state
     * @return
     */
    boolean updateState(Long deviceId, String number, int state);
}
